Compressed sensing with machine-to-machine communication

ABSTRACT

Some examples include a plurality of secure low-power compressive sensing sensor blocks able to communicate with each other and with a computing device to perform spatial and/or temporal compressive sensing. As one example, a first sensor block may obtain data by randomly sampling a sensor signal from a first sensor coupled to the first sensor block. The first sensor block may send the data obtained from the randomly sampled sensor signal to at least one other sensor block of the plurality of sensor blocks, wherein the data is distributed to the plurality of sensor blocks. In addition, at least one of the first sensor block or another sensor block may process the data to at least one of packetize or encrypt the data. The first sensor block and/or the other sensor block may send the processed data to the computing device.

CROSS-REFERENCE TO RELATED APPLICATION

This application is a Continuation Application of U.S. patentapplication Ser. No. 14/823,114, filed Aug. 11, 2015, entitled“Compressed Sensing With Machine-To-Machine Communication”, which claimsthe benefit of U.S. Provisional Patent Application U.S. ProvisionalPatent Application No. 61/999,955, entitled “A distributed compressedsensing framework for m2m communication”, filed on Aug. 11, 2014, whichis incorporated by reference herein in its entirety.

BACKGROUND

Machine-to-machine (m2m) sensing applications are becoming increasinglycommon due to the ubiquity of sensors and the demand for the ability tomonitor many variables. Examples of these variables include environment(e.g., temperature, light), infrastructure (e.g., vibrations, strain,breakage), and numerous other applications. Lowering the computingrequirements, power consumption, and cost of sensors for m2m sensing mayhelp to increase the use and effectiveness of m2m systems. However,conventional sensors, sensor blocks, and associated components may oftencontinuously operate at full speed, collecting large amounts of data. Asensor block may receive the sensor data and may often transmit thesensor data wirelessly to another device. Further, in some examples, thesensor block may encrypt this data. Accordingly, conventional sensorblocks that receive and convey sensor signals may consume a substantialamount of power.

As an example, suppose an m2m sensor network includes a plurality ofsensors and each sensor generates a signal in which the signal bandwidthincludes frequencies up to 1 KHz. Thus, an analog-to-digital converter(ADC) may need to perform sampling of the analog signal at a rate of atleast 2 KHz, which is the Nyquist rate of the highest frequency in thesignal. In addition, a transmitter may transmit data at that same rate,i.e., 2 KHz. Thus, when present, a transmitter may consume a largepercentage of the total power consumed by the sensing device. Further,other components of the sensing device may also run at or above theNyquist rate to match the operating speeds of the ADC and thetransmitter.

In addition, a computing device that receives the data from the sensingdevices may need to store the large amount of sensor data and mayfurther process the data. For example, the computing device may performa substantial amount of data analysis and may generate a visual displayof the data obtained by the sensors and sensor blocks. Receiving andprocessing these large amounts of data may lead to high storage costsand may consume a significant amount of processing time and power.

Furthermore, ensuring security of the sensor data sent from the sensorblocks to the computing device and to other sensor block may also drainconsiderable resources. For instance, sending data over wireless linksmay employ some mode of encryption, which may consume additional powerand resources of the sensor blocks.

BRIEF DESCRIPTION OF THE DRAWINGS

The detailed description is set forth with reference to the accompanyingfigures. In the figures, the left-most digit(s) of a reference numberidentifies the figure in which the reference number first appears. Theuse of the same reference numbers in different figures indicates similaror identical items or features.

FIG. 1 illustrates an example compressed sensing system withsensor-to-sensor communication according to some implementations.

FIG. 2 illustrates an example of a circuit that may be included in acompressed sensing block for performing the compressed sensing accordingto some implementations.

FIG. 3 illustrates an example compressed sensing system with synchronoussensor-to-sensor communication according to some implementations.

FIG. 4 illustrates examples of sampling data in the temporal and spatialdomains according to some implementations.

FIG. 5 illustrates an example system having a plurality of sensor blocksduty cycled to enable spatial compressive sensing according to someimplementations.

FIG. 6 is a flow diagram illustrating an example process according tosome implementations.

FIG. 7 illustrates select components of one or more example computingdevices according to some implementations.

DETAILED DESCRIPTION

Some implementations herein include techniques and arrangements for asensor platform including machine-to-machine (m2m) communication and/orm2m monitoring. For instance, a plurality of sensor blocks may sensesparse signals from respective sensors using compressed sensing (CS) ina distributed manner and may communicate with the other sensor blocks.In some examples, the sensor blocks may send compressed sensing data tolocal and/or remote computing devices that process and reconstruct thecompressed sensing data to obtain a representation of the originalsensor signal. Further, some examples employ distributed compressedsensing in m2m applications that enable universality, lower power usage,and lower cost for m2m applications, such as Internet of Things,Internet of everything, etc.

In some examples, a compressive sensing m2m technique may include thetransmission of compressed sensing data from a sensor block to othersensor blocks as well as to a computing device. This may be consideredin contrast to other sensing techniques, such as for mobile sensors(e.g., proximity sensors), which are self-contained units. In the m2mtechniques herein, the sensors may consume a relatively small amount ofpower. For instance, sensors with lower the power consumption maygenerally be applied to a larger number of applications. Accordingly,implementations herein may enable secure and low-power sensorapplications.

As one example, compressed sensing may be used to obtain sparse signalsfrom an analog sensor signal received from a sensor coupled to a sensorblock. The data obtained by the compressed sensing techniques herein maybe sent subsequently to other sensor blocks and to the computing devicethat reconstructs the sensor signal. In addition, examples herein enableprocessing advantages, such as less overall data to process and lowerdata storage utilization. Further, some examples include an additionallayer of security for data sent from a sensor block to the computingdevice. The sensor systems disclosed herein lower the costs of operatingsensors, e.g., computation costs, transmission costs, and storage costs.For instance, by lowering the rate of sampling as well as by usingspatial correlation, the examples herein can use less storage locallyand still obtain accurate data on the sensed environment.

A seminal paper on compressed sensing is “An Introduction to CompressiveSampling”, Emmanuel J. Candes and Michael B. Wakin, IEEE SignalProcessing Magazine, March 2008, which is incorporated by referenceherein. Compressed sensing relies on two principles: sparsity, whichpertains to the signals of interest, and incoherence, which pertains tothe sensing modality. The principles of compressed sensing are based onefficient sensing or sampling protocols that capture a usefulinformation content embedded in a sparse signal and condense this usefulinformation into a small amount of data.

In some implementations, a platform for m2m sensor communication mayinclude a plurality of sensor blocks and a connected computing devicethat may receive compressed sensing data from the sensor blocks. In somecases, each sensor block may include an amplifier, a compressed sensingblock, a post processor, and a transmitter or other communicationinterface. Each sensor block may receive a sensor signal from arespective sensor, may extract compressed sensing data randomly from thesensor signal, and may transmit the compressed sensing data to acomputing device that may store and reconstruct the compressed sensingdata, and may further perform feature extraction to provide relevantdata. In some examples, the compressed sensing data may be sent to andreconstructed by a local computing device, while in other examples, thecompressed sensing data may be sent to and reconstructed by a server inthe cloud and/or other connected computing device that performs thereconstruction of the compressed sensing data.

In addition, in some cases, the sampled data may be sent from a firstsensor block to at least one other sensor block of a plurality of sensorblocks. For instance, the raw data may be sent and distributed among aplurality of sensor blocks that are in communication with each other,such as through a wireless network. In some cases, the data may bedistributed to the plurality of sensor blocks using point-to-pointnetwork communications. In other cases, the data may be distributed tothe plurality of sensor blocks using multi-hop networking techniques.

In some implementations, the compressed sensing block in each sensorblock may include a random number generator or pseudorandom numbergenerator and an analog-to-digital converter (ADC). The random numbergenerator may cause the ADC to randomly sample an input signal receivedfrom the sensor, or from an amplifier that amplifies the signal from thesensor. In addition, the random number generator can also be used togenerate a randomization matrix for securing/encrypting the compressedsensing data sent from the sensor block to the computing device or toanother sensor block. Accordingly, the computing device or the othersensor block that receives the compressed sensing data from the firstsensor block may use a corresponding randomization matrix to read thereceived compressed sensing data.

In some examples, each sensor block may include a storage that mayreceive the compressed sensing data from the compressed sensing block,and the compressed sensing data may be further subject to postprocessing prior to sending to the computing device. For instance, inthe case that the compressed sensing data is transmitted wirelessly, thepost processor may packetize the data, add transmission headers,timestamps, or the like. In some examples, the storage may be one ormore buffers that store the compressed sensing data temporarily whilethe post processing is performed. In other examples, the storage may bea larger memory or other suitable storage device able to store asubstantial amount of compressed sensing data, and which may be dutycycled to further reduce power consumption of the sensor block. As oneexample, the storage may typically not consume power unless thecompressed sensing block is adding sensed data to the storage.

The sensor blocks may transmit compressed sensing data between thesensor blocks using any type of network topology such as a mesh (fullyconnected or not), point-to-point or hub and spoke and using any routingtechnique such as flooding (anycast), multicast or unicast. Further, thesensor block or another one of the sensor blocks may transmit thecompressed sensing data to a computing device, either through a directconnection or over one or more networks. The computing device thatreceives the compressed sensing data may include an applicationconfigured to reconstruct the compressed sensing data into a meaningfulrepresentation of the sensed signal. Furthermore, the computing devicemay perform predictive analytics on the sensed data, may store thereconstructed data, and may make the reconstructed data accessible tousers, third party tools, and so forth.

In some examples, the sensor block may be implemented on anapplication-specific integrated circuit (ASIC) with merely a fewexternal components, such as a sensor and an antenna. For instance, thesensor block may include a random number generator or pseudorandomnumber generator and a switched capacitor mixed signal blockincorporated into the ASIC. In some cases, the sensor block may switchbetween a random linear combination of sensed data or sampling thesensed data. A linear combination implies a matrix multiplicationbetween random weights and samples of the input data. Furthermore, thesensor block may include a clock gating signal controlled by a randomtime instance. The random time instance may be controlled based on aunique input such as a network IP address or by an input from thecomputing device.

In some implementations as illustrated in FIG. 5, the compressed sensingblock may not be included in the sensor block and the sensor blockitself may be duty-cycled in a random fashion to take samples, whilethereby reducing power consumption. The signal from the sensor block maybe sent to the computing device and to other sensor blocks. Such a bruteforce arrangement may be used to emulate spatial compressive sensing fora plurality of sensor blocks.

Furthermore, as mentioned above, the random number generator in thesensor block may also be used for securely transmitting the compressedsensing data. For instance, the sensor block may employ the randomnumber generator to generate a multiplication matrix for compressedsensing, and the transmitter may use this matrix for securelytransmitting the compressed sensing data. A computing device thatreceives the compressed sensing data may use the same random numbergenerator and a decompression engine for decoding the received data.

For discussion purposes, some example implementations are described inthe environment of compressive sensing sensor blocks able to communicatewith each other. However, implementations herein are not limited to theparticular examples provided, and may be extended to other types ofsensors, other usage environments, other system architectures, othercommunication techniques, and so forth, as will be apparent to those ofskill in the art in light of the disclosure herein.

FIG. 1 illustrates an example system 100 for compressive sensing withsensor-to-sensor communication according to some implementations. Thesystem 100 includes a plurality of compressive sensing sensor blocks102(1), 102(2), . . . , each of which may receive a sensor signal from arespective sensor 104(1), 104(2), . . . . Each sensor 104 may includeany suitable sensor. In some examples, the sensor 104 may include one ormore electrodes. Further, in some examples, the sensor 104 may be amicromachined device or other sensing device, such as a light sensor,temperature sensor, vibration sensor, gas sensor, strain sensor, soundsensor, contaminant sensor, smoke detector, accelerometer, gyroscope,pressure sensor, compass, proximity sensor, Global Positioning System(GPS) location sensor, or the like.

In some cases, the sensor blocks 102 may further include an amplifier106. For instance, the amplifier 106 may amplify the sensor signalreceived from the sensor 104. In other cases, the amplifier 106 may beomitted depending on the type and configuration of the sensor 104, themagnitude of the sensor signal, and so forth.

The sensor blocks 102 may further include a compressed sensing block 108for performing compressed sensing on the sensor signal received from theamplifier 106 and/or the sensor 104. For instance, the compressedsensing block 108 may include a random number generator or pseudorandomnumber generator 110 (hereafter referred to as a “random numbergenerator”) and an analog-to-digital converter (ADC) 112. The randomnumber generator 110 may generate a random value or pseudorandom valueusing any of various techniques. The random values may be used forcontrolling sensor signal sampling performed by the ADC 112. The ADC 112may convert the sensor signal from an analog signal to a digital signalbased on the random values, so as to generate a sparse random samplingof the sensor signal, which is output as compressed sensing data.Additional details of the compressed sensing block 108 are discussedbelow with respect to FIG. 2.

The sensor blocks 102 may further include a post processor 114 and datastorage 116. The storage 116 may receive the compressed sensing datafrom the ADC 112, and the compressed sensing data may be further subjectto post processing by the post processor 114 prior to sending to thecomputing device and/or to another sensor block 102. For instance, inthe case that the compressed sensing data is transmitted wirelessly by atransmitter 118 and antenna 120, the post processor 114 may packetizethe data, add transmission headers, timestamps, or the like. Further, insome examples, the post processor 114 may encrypt the compressed sensingdata prior to sending the data to one or more computing devices 122and/or to one or more other sensor blocks 102.

In some examples, the storage 116 may merely be one or more buffers thatstore the compressed sensing data temporarily while the post processingis performed. In other examples, the storage 116 may be a larger memoryor other suitable storage device able to store a substantial amount ofcompressed sensing data. Additionally, in some instances, the storage116 may be duty cycled to further reduce power consumption of the sensorblock 102. As one example, the storage 116 may typically not consumepower unless the compressed sensing block 108 is adding compressedsensing data to the storage 116.

Further, in some cases, the post processor 114 and/or the transmitter118 may normally be in an off condition and may periodically be wakenedto send a threshold amount of stored compressed sensing data to thecomputing device 122. For instance, to reduce power, post processor 114and/or transmitter 118 can queue the packets of compressed sensing datain the storage 116 and then transmit in burst mode instead of in acontinual fashion. Thus, in some examples, at least one of the storage116, the post-processor 114, or the communication interface 124 maycycle between an active state and a quiescent state based at least inpart on the occurrence of sampling of the sensor signal by thecompressed sensing block 108 and/or based on the amount of compressedsensing data stored in the storage 116 reaching a threshold amountand/or based on user input or action. Accordingly, implementationsherein are able to achieve significant power savings in comparison toconventional sensing blocks that continuously send sensor data to acomputing device or other sensor blocks.

Further, in some examples, such as in the case that the computing device122 is a local computing device, the computing device 122 may besimilarly duty cycled, such as being wakened based on receiving a burstof compressed sensing data being sent from a sensor block 102. Asanother alternative, the computing device 122 may wake periodically byitself or based on user input or action and poll a plurality of thesensor blocks 102 for compressed sensing data, receive the compressedsensing data, perform processing or send the compressed sensing data toanother computing device over the networks 126, and then return to aquiescent state.

Furthermore, while a transmitter 118 and antenna 120 are shown in theexample of FIG. 1 as an example communication interface 124, in otherexamples, a different type of communication interface 124 may be usedfor conveying the compressed sensing data from the sensor block 102 tothe computing device 122 and/or to other sensor blocks 102. Examples ofother types of communication interfaces 124 may include hardwiredconnections, pluggable connections, optical communication interfaces,and so forth. For instance, in some examples, the communicationinterface 124 of the sensor block 102 may be configured to communicateover a hardwired connection directly with a local computing device orother sensor blocks 102. Additionally or alternatively, thecommunication interface may communicate through one or more wires withthe one or more networks 126, such as for sending compressed sensingdata to a remote computing device. Accordingly, there is nothinglimiting the sensor systems herein to employing only a wireless network.

In some examples, the computing device 122 may be a local computingdevice that is local to the sensor blocks 102, and may be directlyconnected, such as by a wire, or may receive direct wirelesscommunication, such as through BLUETOOTH® or other short range wirelesscommunication technology. In other examples, as illustrated, thecomputing device 122 may be a local computing device or a remotecomputing device accessed over the one or more networks 126. Forinstance, the computing device 122 may be a local computing device, suchas a desktop or laptop computer, tablet, smartphone, smartwatch, orother computing device, accessed through a local area network.Alternatively, the computing device 122 may be a remote computingdevice, such as in the case of a cloud-based server, web server, or thelike, accessed through the Internet or other suitable wide area network.Further, in some examples, there may be multiple computing devices 122,such as both a local computing device and a remote computing device. Forexample, the local computing device may receive compressed sensing data128 from the sensor blocks 102, and may forward the compressed sensingdata to a remote computing device, with or without performing anyprocessing or reconstruction of the compressed sensing data.

The sensor blocks 102 may receive real life sensor data (such astemperature data, etc.) through an analog sensor signal and may convertthis sensor signal into digital data in the compressed sensing block108. This raw compressed sensing data may be further processed by thepost processor 114 where addition of packet headers, encryption, etc.may be accomplished. Subsequently the packetized data may be sent ascompressed sensing data 128 to the computing device 122 such as throughthe one or more networks 126 or directly. In addition, the rawcompressed sensing (CS) data 130 may be sent from one sensor block 102to one or more other sensor blocks 102, creating a meshed or multi-hopsensor network. In some cases, the raw CS data 130 may not bepacketized, may not include headers, and/or may not include encryption.While in the example of FIG. 1, only two sensor blocks 102 are shown forclarity, in other examples, there may be any number of the sensor blocks102 in communication with the computing device 122 and each other.

The one or more networks 126 can include any suitable network, includinga wide area network, such as the Internet; a local area network, such asan intranet; a wireless network, such as a cellular network; a localwireless network, such as Wi-Fi; close-range wireless communications,such as BLUETOOTH®; a wired (for example fiber, coaxial or copper)network, such as Ethernet; or any other suitable network, or anycombination thereof. Accordingly, the one or more networks 126 mayinclude both wired and/or wireless communication technologies.Components used for such communication technologies can depend at leastin part upon the type of network and/or the environment selected.Protocols for communicating over such networks are well known and willnot be discussed herein in detail. Accordingly, the transmitter 118 orother communication interface 124 of each sensor block 102 may beconfigured for sending compressed sensing data 128 over the one or morenetworks 126 to the computing device 122, and may be further configuredfor sending the raw CS data 130 to one or more other sensor blocks 102.

The computing device 122 may include an application 132 that may receivethe compressed sensing data 128 as received CS data 134. The computingdevice 122 may further execute the application 132 to reconstruct thecompressed sensing data to obtain reconstructed data 136. For example,the application 132 may reconstruct the sparse signal in the receivedcompressed sensing data 134 to obtain a representation of the sensorsignal received from each sensor 104. There are many forms ofreconstruction algorithms, some of which are heuristic (e.g., greedyalgorithms), whereas the others are more linear (e.g., L1 minimizationalgorithm).

As one example, for CS reconstruction models using constrained L1minimization, larger coefficients are penalized heavily in the L1 norm.Some examples may employ a weighted formulation of L1 minimizationdesigned to more democratically penalize nonzero coefficients. Aniterative algorithm may be used for constructing the appropriateweights. Each iteration may solve one L1 minimization problem by findingthe local minimum of a concave penalty function that more closelyresembles the L0 norm. An additional parameter, usually to avoid anysharp transitions in the penalty function curve, is introduced into theiterative equation to ensure stability and so that a zero estimate inone iteration does not necessarily lead to a zero estimate in the nextiteration. This technique essentially involves using the currentsolution for computing the weights to be used in the next iteration.

In some examples, the amplifier 106 may be implemented as a switchedcapacitor amplifier with a chopper or other means of mitigating 1/fnoise. For instance, the amplifier 106 may be coupled to variouselectrodes as the sensor(s) 104 used to measure electrical data directlyfrom a human patient. In other examples, the amplifier 106 may beomitted, such as the case that the sensor signal from the sensor 104 hassufficient magnitude to be detected by the compressed sensing block 108.In some cases, the compressed sensing block 108 may include a switchedcapacitor multiplier as the ADC 112 where the coefficients aremultiplied by an LFSR (linear feedback shift register) that generatesthe random numbers. Additional details regarding the compressed sensingblock 108 are discussed below with respect to FIG. 2.

The post processor 114 may be implemented as a programmable statemachine, microprocessor, or the like, that may be configurable forvarious standards, communication protocols, and security requirements.In addition, the storage 116 may be any suitable type of memory, storagedevice, or other computer-readable media, some examples of which arediscussed below. As one example, the transmitter 118 may include anultra-low-power switched-capacitor class C amplifier. Consequently, insome cases, the sensor block 102 may be implemented with a complementarymetal-oxide semiconductor (CMOS) ASIC and a few external components suchas the antenna 120 and the sensor 104.

By not having to store a large amount of data (unlike in the case ofNyquist sampling), and then discarding this data, implementations ofcompressed sensing herein are able to conserve valuable power. Forinstance, compressed sensing may employ knowledge of signal sparsity.The compressed sensing block 108 may use a randomization matrix to mixwith the input signal received from the amplifier 106. This will alsoserve to spread the frequency content of the signal and preventeavesdropping, much like with spread spectrum communication.

By utilizing the compressed sensing blocks 108 in the sensor blocks 102,the sensor system 100 may use substantially less power than conventionalsensing techniques. The compressed sensing block 108 operates by relyingupon an inherent sparsity of an input signal received from the sensor104 and the amplifier 106, and without prior knowledge of the inputsignal, for sampling of the input signal below the Nyquist rate toreduce power consumption. The sampling rate of both the compressedsensing block 108 and the transmitter 118 is reduced by a compressionfactor when compared to a conventional sensor block. This leads to adirect savings in power. Post processor 114 may also perform postprocessing operations on less data in sensor block 102 and at a slowerrate than in conventional sensor blocks, leading to further powersavings. As one example, the compressed sensing block 108 herein mayutilize a compression rate of 8×-16×, which will lead to a similardecrease in power consumption, e.g., an order of magnitude, for thesensor block 102 as compared to conventional sensor blocks. To furtherreduce power it is possible to queue up the compressed sensor data instorage 116 and then only send bursts of the data. Power is also reducedby taking into account spatial sparsity in the implementations of FIGS.1 and 3. For example, multiple sensor blocks may be distributedspatially from each other and may communicate the raw CS data 130 amongeach other. As one example, if one of the sensor blocks takes a randomsample, the other sensor blocks may receive a communication from thesensor block that took the sample, and as a result, may delay takingsamples themselves. This communication may include the sampled data orsimply the information that such a sample was taken. Such a distributedscenario allows the sensor blocks to shut down and only sample (at thereduced rate) for a fraction of the time. This reduces the average powerconsumption, even though the peak power consumed when sampling remainsthe same.

Compressed sensing is based on the principle that, through optimization,the sparsity of a signal can be exploited to recover it from far fewersamples than required by the Shannon-Nyquist sampling theorem. There aretwo conditions under which recovery is possible. The first one issparsity, which requires the signal to be sparse in some domain. Thesecond one is incoherence, which is applied through the isometricproperty, which is sufficient for sparse signals. Compressed sensingtypically starts with taking a weighted linear combination of samples ina basis different from the basis in which the signal is known to besparse. The number of these samples can be small and still containnearly all the useful information. Portions of the article “AnIntroduction to Compressive Sampling,” Emmanuel J. Candes and Michael B.Wakin, IEEE Signal Processing Magazine, March 2008, which isincorporated by reference herein, are set forth below to provideadditional background information on compressed sensing processingtechniques.

Conventional approaches to sampling signals or images follow Shannon'scelebrated theorem: the sampling rate must be at least twice the maximumfrequency present in the signal (the so-called Nyquist rate). In fact,this principle underlies nearly all signal acquisition protocols used inconsumer audio and visual electronics, medical imaging devices, radioreceivers, and so on. (For some signals, such as images that are notnaturally bandlimited, the sampling rate is dictated not by the Shannontheorem, but by the desired temporal or spatial resolution. However, itis common in such systems to use an antialiasing low-pass filter to bandlimit the signal before sampling, and so the Shannon theorem plays animplicit role.) In the field of data conversion, for example, standardanalog-to-digital converter (ADC) technology implements the usualquantized Shannon representation: the signal is uniformly sampled at orabove the Nyquist rate. (IEEE Signal Processing Magazine, March 2008,page 21). CS theory asserts that one can recover certain signals andimages from far fewer samples or measurements than traditional methodsuse. To make this possible, CS relies on two principles: sparsity, whichpertains to the signals of interest, and incoherence, which pertains tothe sensing modality.

Sparsity expresses the idea that the “information rate” of a continuoustime signal may be much smaller than suggested by its bandwidth, or thata discrete-time signal depends on a number of degrees of freedom, whichis comparably much smaller than its (finite) length. More precisely, CSexploits the fact that many natural signals are sparse or compressiblein the sense that they have concise representations when expressed inthe proper basis Ψ.

Incoherence extends the duality between time and frequency and expressesthe idea that objects having a sparse representation in Ψ must be spreadout in the domain in which they are acquired, just as a Dirac or a spikein the time domain is spread out in the frequency domain. Putdifferently, incoherence says that unlike the signal of interest, thesampling/sensing waveforms have an extremely dense representation in Ψ.

The crucial observation is that one can design efficient sensing orsampling protocols that capture the useful information content embeddedin a sparse signal and condense it into a small amount of data. Theseprotocols are nonadaptive and simply require correlating the signal witha small number of fixed waveforms that are incoherent with thesparsifying basis. What is most remarkable about these samplingprotocols is that they allow a sensor to very efficiently capture theinformation in a sparse signal without trying to comprehend that signal.Further, there is a way to use numerical optimization to reconstruct thefull-length signal from the small amount of collected data. In otherwords, CS is a very simple and efficient signal acquisition protocolwhich samples—in a signal independent fashion—at a low rate and lateruses computational power for reconstruction from what appears to be anincomplete set of measurements. (IEEE Signal Processing Magazine, March2008, page 22).

Many natural signals have concise representations when expressed in aconvenient basis. Consider, for example, an image [ ] and its wavelettransform [ ]. Although nearly all the image pixels have nonzero values,the wavelet coefficients offer a concise summary: most coefficients aresmall and the relatively few large coefficients capture most of theinformation. . . . In plain terms, one can “throw away” a large fractionof the coefficients without much loss.

This principle is, of course, what underlies most modern lossy coderssuch as JPEG-2000 and many others, since a simple method for datacompression would be to compute x from f and then (adaptively) encodethe locations and values of the S significant coefficients. Such aprocess requires knowledge of all the n coefficients x, as the locationsof the significant pieces of information may not be known in advance(they are signal dependent). . . . More generally, sparsity is afundamental modeling tool, which permits efficient fundamental signalprocessing; e.g., accurate statistical estimation and classification,efficient data compression, and so on. [A] more surprising andfar-reaching implication, however, . . . is that sparsity hassignificant bearings on the acquisition process itself. Sparsitydetermines how efficiently one can acquire signals nonadaptively. (IEEESignal Processing Magazine, March 2008, page 23).

In plain English, the Coherence measures the largest correlation betweenany two elements of the sensing basis Φ and the representation basis Ψ.If Φ and Ψ contain correlated elements, the coherence is large.Otherwise, it is small . . . CS is mainly concerned with low coherencepairs. (IEEE Signal Processing Magazine, March 2008, page 23).

1) The role of the coherence is completely transparent; the smaller thecoherence, the fewer samples are needed, hence [the] emphasis on lowcoherence systems in the previous section.

2) One suffers no information loss by measuring just about any set of mcoefficients, which may be far less than the signal size apparentlydemands If μ(Φ, Ψ) is equal or close to one, then on the order of S logn samples suffice instead of n.

3) The signal f can be exactly recovered from [a] condensed data set byminimizing a convex functional which does not assume any knowledge aboutthe number of nonzero coordinates of x, their locations, or theiramplitudes which we assume are all completely unknown a priori. We justrun the algorithm and if the signal happens to be sufficiently sparse,exact recovery occurs.

The theorem indeed suggests a very concrete acquisition protocol: samplenonadaptively in an incoherent domain and invoke linear programmingafter the acquisition step. Following this protocol would essentiallyacquire the signal in a compressed form. All that is needed is a decoderto “decompress” this data; this is the role of L1 minimization. (IEEESignal Processing Magazine, March 2008, page 24).

[Some examples show] that a number of samples just about 4× the sparsitylevel suffices. Many researchers have reported on similar empiricalsuccesses. There is de facto a known four-to-one practical rule, whichsays that for exact recovery, one needs about four incoherent samplesper unknown nonzero term. (IEEE Signal Processing Magazine March 2008,page 26).

Data acquisition typically works as follows: massive amounts of data arecollected only to be—in large part—discarded at the compression stage tofacilitate storage and transmission. In the language of this article,one acquires a high-resolution pixel array f, computes the complete setof transform coefficients, encode the largest coefficients and discardall the others, essentially ending up with fS. This process of massivedata acquisition followed by compression is extremely wasteful (one canthink about a digital camera which has millions of imaging sensors, thepixels, but eventually encodes the picture in just a few hundredkilobytes).

CS operates very differently, and performs as “if it were possible todirectly acquire just the important information about the object ofinterest.” By taking about O(S log(n/S)) random projections as in“Random Sensing,” one has enough information to reconstruct the signalwith accuracy at least as good as that provided by fS, the best S-termapproximation—the best compressed representation—of the object. In otherwords, CS measurement protocols essentially translate analog data intoan already compressed digital form so that one can—at least inprinciple—obtain super-resolved signals from just a few sensors. Allthat is needed after the acquisition step is to “decompress” themeasured data.

The fact that a compressible signal can be captured efficiently using anumber of incoherent measurements that is proportional to itsinformation level S << n has implications that are far reaching andconcern a number of possible applications. (IEEE Signal ProcessingMagazine March 2008, page 28).

In the example of FIG. 1 and the other examples herein, the compressedsensing block 108 may rely on the inherent sparsity and incoherence ofan input signal received from the sensor 104 and/or the amplifier 106,without prior knowledge of the input signal, for sampling of the inputsignal below the Nyquist rate. Thus, by sampling below the Nyquist rate,the compressed sensing block 108 enables the sensor block 102 to reducethe overall power consumed. For instance, as discussed additionallybelow with respect to FIG. 2, the compressed sensing block 108 mayinclude an analog-to-digital conversion block including a circuit totake random samples of a sensor signal and output compressed sensingdata comprising the random samples.

The sensed signals are typically sparse in some domain. In addition, thesensed signals are spatially and temporally correlated between thevarious sensors in a given network. As one example, in the case oftemperature monitoring, the temperature will not change much withinneighboring sensors. A non-optimized network of sensor blocks maycontinue to send temperature data regardless of this spatialcorrelation. In an optimized, spatially correlated network, temperaturesensors that are nearby would transit CS data from sensor to sensor(because ambient air temperature typically changes very slowly) withonly one or some small number of sensors correlating the received datawith its own collected data and sending along to a computing device.Accordingly, implementations herein are able to perform compressivesensing in both the temporal and/or the spatial domain. Some examplesherein may utilize both domains and may be referred to a distributedcompressive sensing.

In the example of FIG. 1, temporal compressive sensing may beaccomplished by randomly sampling the sensor signal (such astemperature) from the sensor 104 at a rate less than the Nyquist rate.By reducing the number of samples of the signal, the power consumed bothin taking samples as well as transmission of sensor data isproportionately reduced. Some implementations may utilize a linearcombination of some of the samples for easing the reconstructionprocess. This may slightly increase the power consumption in the sensorblocks. Further, other examples, may allow switching between the twotechniques of temporal compressive sensing.

The example of FIG. 1 shows an example of a sensor system 100 that usestemporal compressive sensing. In this example, suppose that thecompressed sensing block 108 of first sensor block 102(1) randomly takesa sample from the sensor signal received from its sensor 104(1). Thefirst sensor block 102(1) may store the sampled sensor data in storage116 and the post processor 114 may use the communication interface 124to send compressed sensing data 128 to the computing device 122. Inaddition, the sensor block 102(1) may send raw CS data 130(1) to thesecond sensor block 102(2). Based on receiving the raw CS data 130(1)from the first sensor block 102(1), the compressed sensing block 108 ofthe second sensor block 102(2) may delay taking a random sample from thesecond sensor 104(2).

Subsequently, the compressed sensing block 108 of the second sensorblock 102(2) may randomly take a sample of the signal from the secondsensor 104(2). The compressed sensing data may be stored in the storage116 of the second sensor block 102(2), and the post processor may sendthe sampled signal as compressed sensing data 128(2) to the computingdevice 122. Additionally, the sensor second sensor block 102(2) may sendthe raw CS data 130(2) to the first sensor block 102(1). In response toreceiving the raw CS data 130(2), the compressed sensing block 108 maydelay taking a next random sample from the first sensor 104(1). In someexamples, the sensor blocks 102 of the system 100 may be configured tooperate as a point-to-point network in which a sensor that takes asample sends the raw CS data to each of the other sensor blocks 102 inthe system 100.

In other examples, sensor blocks 102 may be configured to operate as amulti-hop or meshed network. For example, suppose the first sensor block102(1) takes a sample of the sensor signal from the sensor 104(1). Thesensor block 102(1) may send the compressed sensing data 128(1) to thecomputing device 122. Further, the sensor block 102(1) may send the rawCS data 130(1) from the first sensor block 102(1) to the second sensorblock 102(2). The second sensor block 102(2) may send the raw CS data130(1) to another sensor block 102, which in turn, sends the raw CS datato yet another sensor block 102, until all the sensor blocks 102 havereceived the raw CS data 130(1) generated by the first sensor block102(1). Alternatively, other types of multi-hop network configurationsmay be used, such as flooding (anycast) in which every sensor block 102that receives raw CS data 130(1) sends the raw CS data to a plurality ofother sensor blocks 102.

The sensor blocks 102 may each employ a randomization matrix to mix withthe input sensor signal. This randomization matrix may also be used bythe computing device 122 for decompression of the received data.Accordingly, there may be a synchronization mechanism between the sensorblocks 102 and the “authorized” backend, i.e., the computing device 122.There are many ways of synchronization that may be employed by thesystems herein, including but not limited to header information,information exchange during pairing, or the like. An unauthorizedbackend computing device will not be able to decipher the compresseddata.

FIG. 2 illustrates one example of a circuit 200 that may be included inthe compressed sensing block 108 for performing the compressed sensingaccording to some implementations. In this example, the circuit 200includes an SCDAC (switched capacitor digital-to-analog converter) 202which may correspond at least in part to the ADC 112 discussed abovewith respect to FIG. 1. The circuit 200 further includes an LFSR (linearfeedback shift register) 204, which may correspond at least in part tothe random number generator 110 discussed above with respect to FIG. 1.

The SCDAC 202 includes a series of binary weighted capacitors 206 withtheir top plates connected to each other and also connected to theinverting input of a comparator 208. The SCDAC 202 further includes fourswitches S1, S2, S3, and S4, each of which is in line with a bottomplate of a respective one of the capacitors 206. The SCDAC 202 furtherincludes an analog input line A_(IN), an input switch S_(IN), areference voltage line V_(REF), a comparator switch S_(C), and anammeter A.

In some examples, the weighting of each capacitor 206 may be one halfthe value of its neighbor, as illustrated, in order to prevent improperbit decisions made by the comparator 208. The bottom plate of eachcapacitor 206 is tied to a respective single-pole, triple-throw switchS1-S4. Each switch S1-S4 connects the individual capacitor 206 to eitherthe voltage reference V_(REF) or ground, depending on whether therespective bit is turned “ON” or “OFF”, or to A_(IN) during a sensorsignal sampling mode. The function of the comparator 208 is to swinghigh, if excess charge remains across the SCDAC array after eachcapacitor 206 is tested, or swing low if no charge is remaining. Theinput switch S_(IN) between the analog input and the switches S1-S4controls the sampling and conversion modes of the SCDAC 202.

In addition, the LFSR 204 may include a shift register whose input bitis a linear function of its previous state. As one example, the LFSR 204may include a shift register whose input bit is driven by the XOR ofsome bits of the overall shift register value. Because the operation ofthe register may be deterministic, the stream of values produced by theregister is completely determined by its current (or previous) state.Likewise, because the register has a finite number of possible states,it must eventually enter a repeating cycle. However, an LFSR 204 with awell-chosen feedback function can produce a sequence of bits whichappears random and which has a very long cycle. Accordingly, the LFSR204 in this example may serve as a pseudorandom number generator togenerate random numbers. Thus, the LFSR 204 may be used to randomlychange the bit values of switches S1-S4 in the SCDAC 202. The switchesS1-S4 may be configured in one position or another other randomly. Theoutput D_(OUT) is a multiplication of the input signal A_(IN) and thereference voltage V_(REF) or ground based on positions of the switchesS1-S4. Any suitable type of LFSR 204 may be used. Further, in otherexamples, a different type of randomness generator and/or a differenttype of ADC may be used, with the foregoing being merely one example fordiscussion purposes. To illustrate, there are many other ways ofimplementing the compressed sensing block 108, some of which may use anADC directly, while others may use an analog multiplier and then an ADC.However, in any implementation, the compression and security techniquesdiscussed herein may still be accomplished.

FIG. 3 illustrates an example system 300 including a plurality ofcompressive sensing sensor blocks 302(1), 302(2), . . . , according tosome implementations. In this example, the system 300 having theplurality of sensor blocks 302 enables spatial compressive sensing aswell as the temporal compressive sensing discussed above with respect toFIG. 1. The example of FIG. 1 uses random back off of sampling toaccomplish temporal sparsity. The example of FIG. 3 uses clock gating asa means of accomplishing temporal sparsity. For instance, a randomlyseeded LFSR may accomplish clock gating at a random time interval. Theaddition of clock gating in FIG. 3 makes this example a globallysynchronous system as opposed to an asynchronous system as shown inFIG. 1. Although a synchronous system uses more power than anasynchronous system, the synchronous system has the advantage of lessdesign complexity. Each of the sensor blocks 302 may receive a sensorsignal from a respective sensor 104, and may include some or all of thecomponents 106, 108, 110, 112, 114, 116, 118, 120, 124, as discussedabove with respect to FIG. 1.

The sensor blocks 302 include a circuit to gate a clock used in thesensor block 302. The clock signal may be generated by an oscillator 304and a gating signal passed by a clock gate 306 may be controlled from anLFSR 308. As one example, the LFSR 308 may be seeded using a network IPaddress or other suitable known and unique value. In some examples, eachsensor block 302 may be implemented as a CMOS ASIC with a few externalcomponents such as the antenna 120 and the sensor 104.

As one example, spatial compressive sensing may be accomplished byrandom duty cycling of the sensor blocks 302 in the sensor system 300.Various ones of the sensor blocks 302 may wake up at random times, takea sample, and transmit the compressed sensing data 128 to the computingdevice 122. Further, the sensor block 302 that takes the sample, maytransmit raw CS data 130 to the other sensor blocks 302 in the sensorsystem 300.

In some cases, the sensor system 300 may form a multi-hop network. Forexample, suppose that the first sensor block 302(1) wakes at a randomtime or otherwise randomly takes a sample of the sensor signal from thesensor 104(1). The sensor block 302(1) may send the compressed sensingdata 128(1) to the computing device 122. Further, the sensor block302(1) may send the raw CS data 130(1) from the first sensor block302(1) to the second sensor block 302(2). The second sensor block 302(2)may send the raw CS data 130(1) to another sensor block 302, which inturn, sends the raw CS data to yet another sensor block 302, until allthe sensor blocks 302 have received the raw CS data 130(1) generated bythe first sensor block 302(1). In other examples, the sensor system 300may be configured as a point-to-point network.

FIG. 4 illustrates an example graph 400 illustrating sampling data as afunction of spatial and temporal sparsity according to someimplementations. This example shows that the first sensor block 302(1)takes random samples of the sensor signal at random times. Further, thesecond sensor block 302(2) also takes random samples at random times.The first sensor and first sensor block 302(1) are separated spatiallyfrom the second sensor and second sensor block 302(2). As mentionedabove, when the second sensor block 302(2) takes a random sample at atime corresponding to 402, the first sensor block 302(1) may delaytaking its own the next random sample 404, and vice versa.

FIG. 5 illustrates an example system 500 having a plurality ofcompressive sensing sensor blocks 502(1), 502(2), . . . , that areconfigured to enable spatial compressive sensing according to someimplementations. In this example, the compressed sensing blocks 108 maybe removed from the sensor blocks 502, except for the ADC 112. Thesensor blocks 502 may be duty-cycled in a random fashion to reduce powerconsumption based on an external input, such as from the computingdevice 122. The sensor signal from the respective sensor 104 of thesensor block 502 that is wakened may be sent by the sensor block 502 tothe computing device 122 and to the other sensor blocks 502 in thesystem 500. Such a brute force arrangement may be used to emulatespatial compressive sensing for a plurality of sensor blocks 502. Therandom wake times may accomplish the random projection requirements ofcompressive sensing.

As one example, the random duty cycle times may be determined by seedingthe LFSR (308 in FIG. 3) with the unique IP address (or any other uniqueparameter) of the sensor blocks 502 in the system 500. As anotherexample, the computing device 122 may determine the random duty cycletimes for the sensor blocks 502 in the system 500, such as by using anLFSR or other pseudo-random or random number generator. In someinstances, the system 500 may function as a point-to-point m2m networkin which each of the sensor blocks 502 communicates directly with theother sensor blocks 502 in the system 500. However, in other examples,the sensor blocks 502 may be configured to function as a multi-hopnetwork, as discussed above.

FIG. 6 is a flow diagram illustrating example process 600 for compressedsensing with sensor-to-sensor communication according to someimplementations. The process is illustrated as a collection of blocks ina logical flow diagram, which represents a sequence of operations, someor all of which can be implemented in hardware, software or acombination thereof. In the context of software, the blocks mayrepresent computer-executable instructions stored on one or morecomputer-readable media that, when executed by one or more processors,program the processors to perform the recited operations. Generally,computer-executable instructions include routines, programs, objects,components, data structures and the like that perform particularfunctions or implement particular data types. The order in which theblocks are described should not be construed as a limitation. Any numberof the described blocks can be combined in any order and/or in parallelto implement the process, or alternative processes, and not all of theblocks need be executed. For discussion purposes, the process isdescribed with reference to the environments, architectures and systemsdescribed in the examples herein, although the process may beimplemented in a wide variety of other environments, architectures andsystems. In some examples, the process 600 may be executed at least inpart by the sensor blocks 102, 302, and/or 502.

At 602, a first compressive sensing sensor block of a plurality ofcompressive sensing sensor blocks takes a random sample of a sensorsignal and outputs raw compressed sensing data comprising the randomsample. As an example, a compressed sensing block in the first sensorblock may use a random number generator and ADC for performing therandom sampling.

At 604, a post processor receives the raw compressed sensing data. Forexample, the post processor may be coupled to the compressed sensingblock and may receive the raw data from the compressed sensing block andmay store the raw data in a storage.

At 606, a communication interface sends the raw compressed sensing datafrom the first sensor block to at least one other sensor block. In someexamples, the communication interface sends the raw compressed sensingdata to each of the other compressive sensing sensor blocks in thesystem, e.g., in a point-to-point manner In other examples, the sensorblocks may be configured in a mesh or other multi-hop networkconfiguration in which sensor blocks that receive the raw compressedsensing data may send it to one or more other sensor blocks in thesystem.

At 608, the post processor in the first sensor block and/or in anothersensor block packetizes and/or encrypts the raw compressed sensing datato generate compressed sensing data.

At 610, the communication interface in the first sensor block and/or inthe other sensor block sends the compressed sensing data to at least oneof a local or remote computing device.

At 612, the computing device reconstructs the compressed sensing data tobe representative of the sensor signal. For instance, the computingdevice that receives the compressed sensing data may use a correspondingrandom number generator and a decompression engine for decoding thecompressed sensing data. Several example algorithms for reconstructingthe compressed sensing data are discussed above.

The example processes described herein are only examples of processesprovided for discussion purposes. Numerous other variations will beapparent to those of skill in the art in light of the disclosure herein.Further, while the disclosure herein sets forth several examples ofsuitable frameworks, architectures and environments for executing theprocesses, implementations herein are not limited to the particularexamples shown and discussed. Furthermore, this disclosure providesvarious example implementations, as described and as illustrated in thedrawings. However, this disclosure is not limited to the implementationsdescribed and illustrated herein, but can extend to otherimplementations, as would be known or as would become known to thoseskilled in the art.

FIG. 7 illustrates select components of the computing device 122 thatmay be used to implement some functionality of the compressed sensingdata storage and/or processing described herein. In some examples, thecomputing device 122 may be operated by a service provider, and mayinclude one or more servers or other types of computing devices that maybe embodied in any number of ways. For instance, in the case of aserver, the application, other functional components, and data storagemay be implemented on a single server, a cluster of servers, a serverfarm or data center, a cloud-hosted computing service, a cloud-hostedstorage service, and so forth, although other computer architectures mayadditionally or alternatively be used. Alternatively, in the case of alocal computing device 122, the computing device 122 may be a desktopcomputer, laptop computer, tablet computer, workstation, mobile device,cellphone, smartphone, smartwatch, wearable computing device, or anyother computing device having sufficient storage and processingcapabilities to perform the functions discussed above.

In the illustrated example, the computing device 122 may include, or mayhave associated therewith, one or more processors 702, one or morecomputer-readable media 704, and one or more communication interfaces706. Each processor 702 may be a single processing unit or a number ofprocessing units, and may include single or multiple computing units ormultiple processing cores. The processor(s) 702 can be implemented asone or more microprocessors, microcomputers, microcontrollers, digitalsignal processors, central processing units, state machines, logiccircuitries, and/or any devices that manipulate signals based onoperational instructions. For instance, the processor(s) 702 may be oneor more hardware processors and/or logic circuits of any suitable typespecifically programmed or configured to execute the algorithms andprocesses described herein. The processor(s) 702 can be configured tofetch and execute computer-readable instructions stored in thecomputer-readable media 704, which can program the processor(s) 702 toperform the functions described herein.

The computer-readable media 704 may include volatile and nonvolatilememory and/or removable and non-removable media implemented in any typeof technology for storage of information, such as computer-readableinstructions, data structures, program modules, or other data. Suchcomputer-readable media 704 may include, but is not limited to, RAM,ROM, EEPROM, flash memory or other memory technology, optical storage,solid state storage, magnetic tape, magnetic disk storage, RAID storagesystems, storage arrays, network attached storage, storage areanetworks, cloud storage, or any other medium that can be used to storethe desired information and that can be accessed by a computing device.Depending on the configuration of the computing device 122, thecomputer-readable media 704 may be a type of computer-readable storagemedia and/or may be a tangible non-transitory media to the extent thatwhen mentioned, non-transitory computer-readable media exclude mediasuch as energy, carrier signals, electromagnetic waves, and signals perse.

The computer-readable media 704 may be used to store any number offunctional components that are executable by the processors 702. In manyimplementations, these functional components comprise instructions orprograms that are executable by the processors 702 and that, whenexecuted, specifically configure the one or more processors 702 toperform the actions attributed above to the computing device 122.Functional components stored in the computer-readable media 704 mayinclude the application 132. Additional functional components stored inthe computer-readable media 704 may include an operating system 708 forcontrolling and managing various functions of the computing device 122.

In addition, the computer-readable media 704 may store data used forperforming the functions and services described herein. Thus, in someexamples, the computer-readable media 704 may store the receivedcompressive sensing data 134, and the reconstructed data 136. Thecomputing device 122 may also include or maintain other functionalcomponents and data, such as other modules and data 710, which mayinclude programs, drivers, etc., and the data used or generated by thefunctional components. Further, the computing device 122 may includemany other logical, programmatic, and physical components, of whichthose described above are merely examples that are related to thediscussion herein.

The communication interface(s) 706 may include one or more interfacesand hardware components for enabling communication with various otherdevices, such as over the network(s) 126. For example, communicationinterface(s) 706 may enable communication through one or more of theInternet, cable networks, cellular networks, wireless networks (e.g.,Wi-Fi) and wired networks, as well as close-range communications such asBLUETOOTH®, and the like, as additionally enumerated elsewhere herein.Additionally, in some examples, the computing device 122 may be directlyconnect to the sensor blocks herein over hardwired connections,pluggable connections, optical communication interfaces, and the like,as additionally enumerated herein.

The computing device 122 may further be equipped with variousinput/output (I/O) devices 712. Such I/O devices 712 may include adisplay, various user interface controls (e.g., buttons, joystick,keyboard, mouse, touch screen, etc.), microphone, audio speakers,connection ports and so forth.

The foregoing figures and description illustrate several examples anddescribe algorithms for those examples; however one skilled in the arthaving the benefit of the disclosure herein may apply these same ideasto a variety of other low power sensor applications or developalgorithms of a similar function. Various instructions, methods, andtechniques described herein may be considered in the general context ofcomputer-executable instructions, such as program modules stored oncomputer-readable media, and executed by the processor(s) herein.Generally, program modules include routines, programs, objects,components, data structures, etc., for performing particular tasks orimplementing particular abstract data types. These program modules, andthe like, may be executed as native code or may be downloaded andexecuted, such as in a virtual machine or other just-in-time compilationexecution environment. Typically, the functionality of the programmodules may be combined or distributed as desired in variousimplementations. An implementation of these modules and techniques maybe stored on computer storage media or transmitted across some form ofcommunication media.

Although the subject matter has been described in language specific tostructural features and/or methodological acts, it is to be understoodthat the subject matter defined in the appended claims is notnecessarily limited to the specific features or acts described. Rather,the specific features and acts are disclosed as example forms ofimplementing the claims.

1. A compressive sensing sensor block comprising: a compressed sensingblock including a circuit to take a random sample of a sensor signalfrom a first sensor, and output first sensor data comprising the randomsample of the sensor signal from the first sensor; a post processorcoupled to the compressed sensing block to receive the first sensor datacomprising the random sample of the sensor signal from the first sensor;and a communication interface coupled to the post processor to send, ina communication, the first sensor data comprising the random sample ofthe sensor signal from the first sensor to another compressive sensingsensor block, wherein receipt, at the other compressive sensing sensorblock, of the communication including the first sensor data comprisingthe random sample of the sensor signal from the first sensor conservespower in the other compressive sensing sensor block by causing the othercompressive sensing sensor block to delay taking a next random sample ofa sensor signal of a second sensor associated with the other compressivesensing sensor block.
 2. The compressive sensing sensor block as recitedin claim 1, wherein post processor is configured to: convert the firstdata into compressed sensing data by at least one of packetizing orencrypting the data; and cause the communication interface to send thecompressed sensing data to a computing device.
 3. The compressivesensing sensor block as recited in claim 2, wherein the communicationinterface comprises a transmitter and an antenna for wirelessly sendingat least one of: the first data to the other compressive sensing sensorblock; or the compressed sensing data to the computing device.
 4. Thecompressive sensing sensor block as recited in claim 2, wherein thecommunication interface comprises a wired connection for sending atleast one of: the first data to the other compressive sensing sensorblock; or the compressed sensing data to the computing device.
 5. Thecompressive sensing sensor block as recited in claim 2, wherein the postprocessor utilizes a random number generator for encrypting thecompressed sensing data prior to sending to the computing device.
 6. Thecompressive sensing sensor block as recited in claim 1, wherein thecompressed sensing block comprises a random number generator and ananalog-to-digital converter (ADC), wherein the random number generatorcauses, at least in part, the ADC to take the random sample.
 7. Thecompressive sensing sensor block as recited in claim 1, wherein thecompressive sensing sensor block and a plurality of other compressivesensing sensor blocks are configured to send at least one of respectivesensor data or respective compressed sensing data in at least one of: apoint-to-point network configuration; or a multi-hop networkconfiguration; or a mesh network configuration.
 8. The compressivesensing sensor block as recited in claim 1, further comprising a storagefor receiving the first data prior to sending to the other compressivesensing sensor block, wherein at least one of the storage, thepost-processor, or the communication interface cycle between an activestate and a quiescent state based at least in part on at least one of:an occurrence of sampling of the sensor signal by the compressivesensing sensor block; an amount of compressed sensing data stored in thestorage reaching a threshold amount; or an input from a user or acomputing device.
 9. The compressive sensing sensor block as recited inclaim 1, further comprising a clock gate in communication with thecompressed sensing block to gate a clock signal controlled by a randomtime instance, wherein the random time instance is based at least inpart on at least one of: a network IP address; a signal from a computingdevice generated at least in part by a random number generator or apseudorandom number generator; or a unique parameter.
 10. Thecompressive sensing sensor block as recited in claim 2, wherein thecomputing device programmed to at least one of: reconstruct thecompressed sensing data to generate a representation of the sensorsignal; perform predictive analytics on the reconstructed compressedsensing data; or provide access of third party tools to the compressedsensing data.
 11. A method comprising: obtaining, by a first sensorblock of a plurality of sensor blocks, first sensor data from a randomlysampled sensor signal from a first sensor coupled to the first sensorblock; sending, by the first sensor block, a communication including thefirst sensor data obtained from the randomly sampled first sensor signalof the first sensor to a second sensor block of the plurality of sensorblocks, wherein, receipt, at the second sensor block, of thecommunication including the first sensor data obtained from the randomlysampled first sensor signal conserves power in the second sensor blockby causing the second sensor block to delay taking a next random sampleof a second sensor signal of a second sensor coupled to the secondsensor block.
 12. The method as recited in claim 11, wherein obtainingthe first sensor data from the randomly sampled first sensor signal isperformed using a compressed sensing block included in the first sensorblock, the compressed sensing block comprising a random number generatorand an analog-to-digital converter (ADC), wherein the random numbergenerator causes, at least in part, the ADC to obtain the first sensordata from the random sample of the first sensor signal.
 13. The methodas recited in claim 11, further comprising randomly duty cyclingindividual ones of the sensor blocks to cause the individual sensorblocks to randomly sample respective sensor signals from respectivesensors coupled to the respective sensor blocks.
 14. The method asrecited in claim 11, further comprising using a clock gate to gate aclock signal controlled by a random time instance to cause the firstsensor block to randomly sample the first sensor signal, wherein therandom time instance is based at least in part on at least one of: anetwork IP address; a signal from a computing device generated at leastin part by a random number generator or a pseudorandom number generator;or a unique parameter.
 15. The method as recited in claim 11, whereinthe first sensor block and the plurality of other sensor blocks areconfigured to distribute respective sensor data to the plurality ofsensor blocks using at least one of: a point-to-point networkconfiguration; a multi-hop network configuration; or a mesh networkconfiguration; the method further comprising: processing the respectivesensor data to at least one of packetize or encrypt the respectivesensor data to generate compressed sensing data; and sending thecompressed sensing data to a computing device.
 16. A system comprising:a plurality of sensor blocks, each sensor block able to communicate withat least one other sensor block of the plurality of sensor blocks, eachsensor block comprising: a compressed sensing block to receive a sensorsignal, the compressed sensing block including a circuit to take arandom sample of the sensor signal and output sensor data comprising therandom sample; a post processor coupled to the compressed sensing blockto receive the sensor data; and a communication interface coupled to thepost processor to send the sensor data to at least one of another sensorblock or a computing device, wherein a first sensor block of theplurality of sensor blocks is configured to: obtain first data from arandomly sampled first sensor signal from a respective first sensorcoupled to the first sensor block; and send a communication includingthe first sensor data obtained from the randomly sampled first sensorsignal to a second sensor block of the plurality of sensor blocks,wherein, receipt, at the second sensor block, of the communicationincluding the first sensor data obtained from the randomly sampled firstsensor signal conserves power in the second sensor block by causing thesecond sensor block to delay taking a next random sample of a secondsensor signal of a second sensor associated with the second sensorblock.
 17. The system as recited in claim 16, further comprising thecomputing device, wherein at least one of the sensor blocks is furtherconfigured to send the sensor data to the computing device, wherein thecomputing device is programmed to: receive the sensor data; andreconstruct the sensor data to generate a representation of the sensorsignal.
 18. The system as recited in claim 16, wherein the plurality ofsensor blocks are configured to distribute the sensor data among theplurality of sensor blocks using at least one of: a point-to-pointnetwork configuration; a multi-hop network configuration; or a meshnetwork configuration.
 19. The system as recited in claim 16, whereinthe compressed sensing block of each of the sensor blocks comprises arandom number generator and an analog-to-digital converter (ADC), andwherein the random number generator causes, at least in part, the ADC totake respective random samples.
 20. The system as recited in claim 16,wherein each of the sensor blocks includes a clock gate to gate a clocksignal controlled by a random time instance to cause the sensor block torandomly sample a respective sensor signal of a respective sensorcoupled to each respective sensor block, wherein the random timeinstance is based at least in part on at least one of: a network IPaddress; a signal from the computing device generated at least in partby a random number generator or a pseudorandom number generator; or aunique parameter.